During operation of a computer system, a processor such as a central processing unit (CPU) is prompted and notified when an input/output (I/O) function is needed. This prompting is typically known as an interrupt. Upon prompting by an interrupt, control is transferred to an operating system (OS), which determines an action to be taken and prioritizes the action, along with other functions.
Modern computer systems may use a conventional fixed mode to deliver interrupts. In the fixed mode, interrupts from a device are delivered to one fixed, interrupt handling CPU. However, corresponding requests to the device may proceed from another CPU or from several other CPUs. Although this is a simple way to handle interrupts, it can be somewhat inefficient as applied to some modern computer systems.
For instance, on some computers, such as those characterized by the UltraSPARC architecture, the interrupt-handling CPU is fixed in booting. Upon fixing this CPU to handle interrupts, the computer system is constrained to handle interrupts on that CPU. Constraining the computer system to using the one fixed CPU to handle interrupts can impede system performance, because another processor may be able to handle a particular interrupt more efficiently than the fixed interrupt handling processor.
The conventional fixed mode of interrupt delivery can also be inefficient because the interrupt-handling CPU, CPU-X can become saturated when many interrupts occur in too short of a time period for CPU-X to process them completely and correctly. Further, access to memory and to cache may tend to be biased in computer systems that employ the fixed mode of interrupt delivery, which can cause further delay and also hinder efficiency.
This inefficiency can affect advanced systems. Besides the NUMA system discussed above, some of the advanced systems whose performance and efficiency can be affected include some I/O intensive systems and some advanced I/O adapters. Such advanced I/O adapters can include the Fire PCI-Express adapter and the fibre-channel card, among others.